NUnit এবং Xunit হলো দুটি জনপ্রিয় .NET ভিত্তিক টেস্টিং ফ্রেমওয়ার্ক, যা ব্যবহারকারীরা ইউনিট টেস্টিং এবং অ্যাপ্লিকেশন কোডের কার্যকারিতা যাচাই করতে ব্যবহার করে। ইউনিট টেস্টিং ডেভেলপারদের জন্য একটি গুরুত্বপূর্ণ প্রক্রিয়া, যার মাধ্যমে কোডের ছোট অংশগুলো পরীক্ষা করা হয় যাতে তারা প্রত্যাশিতভাবে কাজ করে কিনা তা নিশ্চিত করা যায়। NUnit এবং Xunit উভয়ই এই কাজের জন্য উপযুক্ত, তবে তাদের মধ্যে কিছু পার্থক্য রয়েছে।
এখানে NUnit এবং Xunit ব্যবহার করার প্রক্রিয়া এবং সুবিধাগুলি বিস্তারিতভাবে আলোচনা করা হবে।
NUnit একটি শক্তিশালী এবং বিস্তৃত টেস্টিং ফ্রেমওয়ার্ক যা .NET অ্যাপ্লিকেশনগুলির জন্য বিভিন্ন টেস্টিং কৌশল প্রদান করে। এটি Attribute-based অ্যাপ্রোচে কাজ করে, যেখানে প্রতিটি টেস্ট মেথডের জন্য নির্দিষ্ট অ্যাট্রিবিউট ব্যবহার করা হয়।
NUnit ব্যবহার শুরু করার জন্য আপনাকে প্রথমে NUnit এবং NUnit3TestAdapter NuGet প্যাকেজ ইনস্টল করতে হবে।
Install-Package NUnit
Install-Package NUnit3TestAdapter
NUnit-এ একটি টেস্ট মেথড তৈরি করতে Test
অ্যাট্রিবিউট ব্যবহার করা হয়। উদাহরণস্বরূপ:
using NUnit.Framework;
[TestFixture]
public class CalculatorTests
{
[Test]
public void Add_TwoNumbers_ReturnsCorrectSum()
{
var calculator = new Calculator();
int result = calculator.Add(2, 3);
Assert.AreEqual(5, result);
}
}
এখানে:
TestFixture
অ্যাট্রিবিউট দ্বারা কনটেইনার ক্লাস চিহ্নিত করা হয়।Test
অ্যাট্রিবিউট দ্বারা একটি টেস্ট মেথড চিহ্নিত করা হয়।Assert.AreEqual()
মেথডটি টেস্টের আউটপুট এবং প্রত্যাশিত আউটপুট তুলনা করে।NUnit-এ Assert
ক্লাসের মাধ্যমে বিভিন্ন শর্ত পরীক্ষা করা হয়, যেমন:
Setup এবং Teardown মেথডগুলি টেস্টের আগে এবং পরে প্রয়োজনীয় প্রস্তুতি এবং পরিস্কার করতে ব্যবহৃত হয়।
[TestFixture]
public class CalculatorTests
{
private Calculator _calculator;
[SetUp]
public void Setup()
{
_calculator = new Calculator();
}
[Test]
public void Add_TwoNumbers_ReturnsCorrectSum()
{
var result = _calculator.Add(2, 3);
Assert.AreEqual(5, result);
}
[TearDown]
public void TearDown()
{
_calculator = null;
}
}
Xunit একটি আরও আধুনিক টেস্টিং ফ্রেমওয়ার্ক যা NUnit-এর তুলনায় কিছু উন্নত বৈশিষ্ট্য এবং স্বতন্ত্র অ্যাট্রিবিউট ব্যবহারের সুবিধা প্রদান করে। Xunit মডুলার এবং লাইটওয়েট, এবং এটি কেবলমাত্র একটি Assert
মেথডের সাথে টেস্টিং পরিচালনা করে।
Xunit ব্যবহার করার জন্য আপনাকে প্রথমে Xunit এবং Xunit.runner.visualstudio NuGet প্যাকেজ ইনস্টল করতে হবে।
Install-Package xunit
Install-Package xunit.runner.visualstudio
Xunit-এ টেস্ট মেথড তৈরি করতে Fact
অ্যাট্রিবিউট ব্যবহার করা হয়। উদাহরণস্বরূপ:
using Xunit;
public class CalculatorTests
{
[Fact]
public void Add_TwoNumbers_ReturnsCorrectSum()
{
var calculator = new Calculator();
int result = calculator.Add(2, 3);
Assert.Equal(5, result);
}
}
এখানে:
Fact
অ্যাট্রিবিউট টেস্ট মেথড চিহ্নিত করতে ব্যবহৃত হয়।Assert.Equal()
মেথডটি টেস্টের আউটপুট এবং প্রত্যাশিত আউটপুট তুলনা করে।Xunit-এ Assert
ক্লাসের মাধ্যমে পরীক্ষাটি করা হয়। যেমন:
Xunit-এ IClassFixture<T>
এবং ICollectionFixture<T>
ব্যবহার করে Setup এবং Teardown কার্যকলাপ সম্পাদন করা হয়। উদাহরণস্বরূপ:
public class CalculatorTests : IClassFixture<CalculatorFixture>
{
private readonly CalculatorFixture _fixture;
public CalculatorTests(CalculatorFixture fixture)
{
_fixture = fixture;
}
[Fact]
public void Add_TwoNumbers_ReturnsCorrectSum()
{
var result = _fixture.Calculator.Add(2, 3);
Assert.Equal(5, result);
}
}
public class CalculatorFixture
{
public Calculator Calculator { get; private set; }
public CalculatorFixture()
{
Calculator = new Calculator();
}
}
এখানে, CalculatorFixture
ক্লাসটি Setup এর মতো কাজ করছে, যেখানে Calculator
অবজেক্টটি প্রস্তুত করা হচ্ছে এবং পরে টেস্টে ব্যবহৃত হচ্ছে।
বৈশিষ্ট্য | NUnit | Xunit |
---|---|---|
Attribute-based Testing | Test , SetUp , TearDown | Fact , Theory |
Test Case Reusability | ফিক্সচার এবং কাস্টম সেটআপ/টিয়ারডাউন | IClassFixture<T> এবং ICollectionFixture<T> |
Multiple Assertions | সমর্থন করে | সমর্থন করে |
Parameterization | TestCase ব্যবহার | Theory ব্যবহার |
Compatibility | অধিক জনপ্রিয়, legacy প্রজেক্টে ব্যবহৃত | আধুনিক, সিম্পল এবং লাইটওয়েট |
NUnit এবং Xunit উভয়ই শক্তিশালী এবং কার্যকর টেস্টিং ফ্রেমওয়ার্ক, তবে তাদের ব্যবহারের মধ্যে কিছু পার্থক্য রয়েছে। NUnit সাধারণত বেশি বিস্তৃত এবং অনেক পুরানো প্রজেক্টে ব্যবহৃত হয়, যেখানে Xunit আধুনিক, সহজ এবং আরও সহজবোধ্য। দুইটি ফ্রেমওয়ার্কের মধ্যে ব্যবহৃত অ্যাট্রিবিউট এবং ফিক্সচার ব্যবস্থা কিছুটা আলাদা হলেও, দুটি ফ্রেমওয়ার্কই .NET প্ল্যাটফর্মে ইউনিট টেস্টিংয়ের জন্য উপযুক্ত।
common.read_more